Recently, a method for coding a video and audio signal into digital data so as to be transmitted or stored in a storing unit, and decoding the coded digital data so as to be reproduced has been used in a system for transmitting and receiving a video and audio signal. However, there is needed a technique for compressing further the quantity of transmission data so as to optimize a transmission efficiency of data in such a coding and decoding system. There have been a transformation coding method, a Differential Pulse Code Modulation (DPCM) method, a vector quantization method and a variable-length-coding method, etc., as methods for coding such transmitted or stored digital data. The coding methods compress a total quantity of data, by removing redundancy data which is included in the transmitted or stored digital data.
The video data of each frame is divided into a block unit of a predetermined size and data-processed in a coding and decoding system for transmitting and receiving the video signal. Each block data or differential data between block data is orthogonal-transformed, so that the video data is transformed into transformation coefficients in the frequency domain. There-have been a Discrete Cosine Transform (DCT), a Walsh-Hadamard Transform (WHT), a Discrete Fourier Transform (DFT) and a Discrete Sine Transform (DST), etc., as block data transformation methods. The transformation coefficients obtained by such transformation methods are coded properly according to the characteristic of coefficient data, so that compressed data is gained or increased. Since one's sight is more sensitive to the low frequency than the high frequency, the data in the high frequency is reduced under data-processing. Accordingly, the quantity of the coded data can be decreased.
FIG. 1 represents a schematic block diagram of a conventional coding apparatus of a video data. First, an input terminal 10 is input with N.times.N blocks (which is generally represented as N.sub.1 .times.N.sub.2, and which for the convenience of explanation, is assumed as N.sub.1 =N.sub.2 =N). The block data input through the input terminal 10 is added to a predetermined feedback data in a first adder A1, thereby calculating differential data between the two data (i.e., between the input data and the feedback data). An orthogonal transformer 11 discrete-cosine-transforms input differential data, thereby causing the differential data to be transformed into coefficients in the frequency domain. A quantizer 12 changes coefficients transformed through a predetermined quantizing process into representative values of various levels. Then, the quantizer 12 variably quantizes the output data from the orthogonal transformer 11 according to a quantization level (Q) input from a buffer 14. A variable length coder 13 variable-length-codes the block data taking statistical characteristics of the quantization coefficients into consideration, thereby transmitting Compressed data (V.sub.CD). A variable-length-coding procedure with respect to the video data will be described hereinafter. The buffer 14 is input with a compression data from the variable length coder 13 and outputs the data to a transmission channel at a constant speed. Then, the quantization level (Q) is output for controlling the quantity of input data, so as to prevent an overflow or an underflow in transmission data.
Generally, there are similar patterns between adjacent frames in the video data. Accordingly, in case of slight movement of an image, the motion of the image is estimated by comparing a present frame with previous frames. A motion vector (MV) is calculated as a result of the motion estimation. A motion compensation is achieved from previous frames with a motion vector. The quantity of differential data between block data obtained from motion compensation and block data input to the input terminal 10 is very small, so that the data can be further compressed in the above coding process. A feedback loop for performing the motion estimation and motion compensation includes a dequantizer 15, an inverse orthogonal-transformer 16, a frame memory 17, a motion estimator 18 and a motion compensator 19. The dequantizer 15 and inverse orthogonal-transformer 16 dequantizes and inversely discrete-cosine-transforms the quantization coefficients output from the quantizer 12, and transforms them into video data in the spatial domain. A second adder A2 adds the video data output from the inverse orthogonal-transformer 16 to the feedback data input via a second switch SW2, thereby outputting a resultant block data. The block data output from the second adder A2 is sequentially stored in the frame memory 17, thereby reconstructing a frame. A motion estimator 18 catches the block data, which is the most similar data in pattern with the block data input via the input terminal 10, from the frame data stored in the frame memory 17, and calculates the motion vector MV for estimating the motion of images from the two block data. The motion vector MV is transmitted to a receiver and the motion compensator 19, in order to be used in a decoding system. The motion compensator 19 reads out the block data corresponding to the motion vector MV from the frame data in the frame memory 17, and inputs the read data to the first adder A1. As described above, the first adder A1 calculates a differential data between the block data input from the input terminal 10 and the block data input from the motion compensator 19, then the differential data is coded, and the coded data is transmitted to the receiver. Moreover, the two switches SW1 and SW2 in FIG. 1 are refresh switches for refreshing the data in the unit of a frame or block of a predetermined size, in order to prevent the difference between coded data of frames and unprocessed data of frames due to the accumulation of the differential data. The coded video data (V.sub.CD) is transmitted to the receiver and input to a decoder such as is shown in FIG. 2. A variable length decoder 21 decodes the input video data (V.sub.CD) via an inverse process of variable-length-coding. A dequantizer 22 decodes quantization coefficients input from the variable length decoder 21, thereby outputting transformation coefficients in the frequency domain. An inverse orthogonal-transformer 23 transforms the transformation coefficients in the frequency domain, which are input from the quantizer 22, into the video data in the spatial domain. The motion vector MV output from the motion estimator 18 of the coder is input to a motion compensator 24 of the decoder. The motion compensator 24 reads out the block data corresponding to the motion vector MV from the frame data stored in a frame memory 24, and inputs the read data to an adder A. The adder A adds the differential data output from the inverse orthogonal-transformer 23 to the block data input from the motion compensator 24, thereby outputting resultant reconstructed block data. A switch SW connected to an output terminal of the motion compensator 24 plays the same role with the refresh switches as the above described coder in FIG. 1.
There has been used a Huffman Code for variable-length-coding in a conventional coding system. Huffman Coding allocates different codes in length according to a probability of a predetermined symbol in the input data. That is, the higher the probability is, the shorter a code is allocated, and the lower the probability is, the longer a code is allocated. In coding by means of Huffman algorithm, in the case where there are multiforms of symbols in abundance, and numbers of symbols have low probabilities, when long codes are allocated for a plurality of rare symbols by the Huffman algorithm, data-processing comes to be further complicated in the process of coding and decoding. In order to solve these problems, in the case that a code with a predetermined fixed length is allocated for a distribution area of a plurality of rare symbols (which is hereinafter assumed as an escape area), the complexity of the data-processing is greatly reduced, even if an average code length can be increased more than an average value of original Huffman codes.
FIG. 3A shows a two-dimensional 8.times.8 block of data, FIG. 3B shows a two-dimensional 8.times.8 block of quantization coefficients which transform the block data into data in the frequency domain and quantize the transformed data, and FIG. 3C shows the zigzag scan of the quantization coefficients from low frequency to high frequency, and codes the scanned coefficients into [run.multidot.level] symbols, considering that most quantization coefficients are "0" in the low frequency domain. The run means the number of 0's being between coefficients not "0", the level represent absolute values of coefficients not "0". In the case of the 8.times.8 data of FIGS. 3A-3C, the run can have values from "0" to "63". In the case that the quantization output is an integer value from "-255" to "255" the level is a value from "1" to "255" and the sign is separately indicated.
FIG. 4 shows an escape area and a regular area classified according to probabilities of [run level] symbols. A probability of symbols with a large value of run and/or level in [run level] symbols is very low statistically. A distribution area of symbols with a low probability, is allocated as an escape area, in which the symbols are represented by an escape sequence of fixed length, and a regular Huffman code is allocated for the other area (regular area). For example, in the case of 8.times.8 block data, the escape sequence consists of 6-bit escape symbols, 6-bit runs for representing from "0" to "63", 8-bit levels for showing from "1" to "255" and a sign bit of 1-bit. Accordingly, the escape sequence has the fixed length of 21 bits.
A conventional variable-length-coding system has utilized a zigzag scanning pattern (described in FIGS. 3A-3C) for N.times.N quantization coefficients in variable-length-coding the video data, because energies of the video signal are concentrated at the low frequency domain centering around DC components. However, the energy of the video signal can be more widely distributed to frequency components of a horizontal orientation or a vertical orientation according to the pattern of the video signal. Therefore, a conventional zigzag scanning pattern is not an optimized scanning pattern for variable-length-coding the video data. Accordingly, the scanning pattern which can be adaptably changed to a horizontal orientation or a vertical orientation according to the distribution characteristics of the video data, are desirable for variable-length-coding and variable-length-decoding.